<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    正在封装cookie
</body>
<script>
    
    // setCookie("a",10);
    // setCookie("b",20,{});
    // setCookie("c",30,{
    //     path:"/abc"
    // });
    // setCookie("d",40,{
    //     expires: 3
    // });
    // setCookie("e",50,{
    //     expires: 7,
    //     path:"/abc"
    // });

    // 设置cookie封装
    function setCookie(key, val, ops={}){
        // 根据参数处理有效期部分的字符
        let e = "";
        if(ops.expires){
            const d = new Date();
            d.setDate(d.getDate() + ops.expires)
            e = ";expires="+d;
        }
        // 根据参数处理路径部分的字符
        let p = "";
        if(ops.path){
            p = ";path="+ops.path
        }
        // 使用字符串拼接，设置cookie
        document.cookie = `${key}=${val}${e}${p}`;
    }

    // console.log(document.cookie)

    // console.log(getCookie("name"))
    // console.log(getCookie("age"))
    // console.log(getCookie("a"))
    // console.log(getCookie("b"))
    // console.log(getCookie("abc"))
    // console.log(getCookie("qwe"))


    // 获取cookie
    function getCookie(key){
        // 获取所有cookie，解析出每组cookie
        const arr = document.cookie.split("; ")
        // 遍历得到每组cookie
        for(let i=0;i<arr.length;i++){
            // 解析出cookie的名字，比对
            if(arr[i].split("=")[0] === key){
                // 返回cookie对应的值
                return arr[i].split("=")[1];
            }
        }
        // 遍历后，如果没有找到符合条件的cookie，返回null
        return null;
    }


    // removeCookie("a");
    // removeCookie("b",{});
    // removeCookie("c",{});
    // removeCookie("c",{
    //     path:"/abc"
    // });

    // 删除cookie
    function removeCookie(key, ops={}){
        // 将配置信息中的有效期部分，设置为-1
        ops.expires = -1;
        // 调用设置cookie，将key和配置信息传入，利用设置cookie，将指定cookie的有效期设置为过去的日期
        setCookie(key, "ahfjasdhjv", ops);
    }

</script>
</html>